Firebase
The Firebase connector currently supports Cloud Firestore databases. The Cloud Firestore connector follows a NoSQL paradigm, in which data is organized on a flat structure. Collections should have references to other collections in a similar fashion to a SQL structure. A collection is linked by defining a property that references the doc id in other collections.
Config
The data access is done by defining a property config
. This config
is provided via the Firebase Console of the corresponding project:
config:
apiKey: PROJECT_API_KEY
authDomain: project-name.firebaseapp.com
databaseURL: https://project-name.firebaseio.com
projectId: project-name
storageBucket: project-name.appspot.com
messagingSenderId: XXXXXXXXXXXXX
Authentication
Sign in with email and password is currently supported on Firebase databases. In the configuration of each database include an object named authentication
with an email
and password
properties:
authentication:
email: email@example.org
password: mypassword
If the authentication
property is not provided, Trial Monitor it will try to connect to Firebase without authentication.
Data structure
Structure
The structure
field is what enables Trial Monitor to know how Firestore collections are connected to each other. To created a relation between collections, on the configuration of each collection, define a property named relations
. Inside, create a new property with the name of the linked collection with the value of the property used to identify that collection.
structure:
users:
relations:
usersDetails: UserId
userDetails:
relations:
clinicalConditions: ClinicalConditionId
Timestamps
The Firebase connector can interpret Unix or Firebase native timestamps. Unix timestamps are expected by default.
- timestampField: (string | object) Name of the timestamp key on your database, or an object with the
name
andtype
properties:- name: Name of the timestamp property on your database. Defaults to
timestamp
. - type: (optional) If you are using Firebase native timestamp you need to set the
type
property toFirebaseTimestamp
.
- name: Name of the timestamp property on your database. Defaults to
timestampField: myTimestampName
// --- OR ---
timestampField:
name: myTimestampName
type: FirebaseTimestamp
Note that you will need to create an index on the Firebase console to be able to filter by date and user simultaneously